package com.nageoffer.jobtrain.projects.dao.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nageoffer.jobtrain.projects.dao.entity.ContestAnswerDO;
import com.nageoffer.jobtrain.projects.service.handler.contest.dto.ContestUserScoreDTO;
import com.nageoffer.jobtrain.projects.service.handler.question.dto.OjQuestionSubmitDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户竞赛答题数据持久层
 * author：唐晨
 */
public interface ContestAnswerMapper extends BaseMapper<ContestAnswerDO> {
    /**
     * 获取竞赛记录表中用户提交代码执行结果
     *
     * @param contestId   竞赛ID
     * @param questionId  OJ题目ID
     * @param username    用户手机号
     * @param codeType    代码类型
     * @param currentTime 代码执行时间
     * @return 代码执行结果
     */
    OjQuestionSubmitDTO getExecuteResult(@Param("contestId") Long contestId,
                                         @Param("questionId") Long questionId,
                                         @Param("username") String username,
                                         @Param("codeType") Integer codeType,
                                         @Param("currentTime") String currentTime);

    /**
     * 查询用户竞赛成绩列表
     *
     * @param contestIdList 竞赛ID列表
     * @return 竞赛成绩列表
     */
    List<ContestUserScoreDTO> selectUserScoreByContest(List<Long> contestIdList);
}